SlackでRM Mini3を操作する
https://gyazo.com/1f4bc3608598e02dcf99a783156bb667
1. Slackアカウントを登録
もし、まだ Slack を使ったことがない場合は、無料アカウントを登録 → 2. Slack にログイン → メニューを開く → 「App管理」を選択
https://gyazo.com/609505dcaa991477a3e2c57fd8d7ed84
3. hubotを検索 → Hubot アプリをインストール
インストールした hubot に「homebot」という名前をつける
https://gyazo.com/9b1ea1208379b46df9d9fcccddebd94a
4. HUBOT_SLACK_TOKEN を取得
Slack の Hubok アプリをインストールすると、アプリの設定画面に HUBOT_SLACK_TOKEN が表示される。
HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
後で必要になるので、このトークンをメモしておく。
注意:このトークンの値は秘密厳守。他人に漏れると、他人でも自由に家電を操作できるようになってしまう。
5. hubot に HUBOT_SLACK_TOKEN を設定
再びパソコン(Raspberry Pi 等)に戻って、Slack へのアクセス権限を、hubot に与える。
code:sh
$ cd ~/homebot # hubotのディレクトリに移動
$ nano bin/hubot # ファイル bin/hubot を編集
:
export PATH= ...
export HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # この1行を追加する
exec ...
6. hubot を実行
Slack に接続するには、オプション--adapter slackを指定して、hubot を起動する。
code:sh
$ bin/hubot --adapter slack # hubotを実行して、Slackに接続する
INFO Logged in as homebot of ... # Slackにログインできた!
INFO Slack client now connected #
INFO hubot-redis-brain: Using default redis on localhost:6379
INFO hubot-redis-brain: Data for hubot brain retrieved from Redis
Discovered Broadlink RM device at 192.168.1.8 (34:ea:34:8f:88:4d)
【注意】Slack に接続した hubot は、コマンドラインからの入力は受け付けなくなる。
Slackへの接続後、hubotを停止したくなった場合には、Ctrl + C を押せば強制終了できる。
次に説明するように、これ以降は Slack 経由で、hubot とメッセージを交換する。
なお、以下のような警告が表示される場合がある。
code:sh
warn: SlackDataStore is deprecated and will be removed in the next major version. See project documentation for a migration guide.
この警告は「deprecated(非推奨)な方法でSlackに接続しているので、 いずれ接続できなくなる」と言っている。
警告が出ないようにするのがベストだが、hubotなどのバージョン次第で出たり出なかったり、まだ原因を特定できておらず、解消方法が分かっていないので、とりあえず先に進んでよい。
(ちなみに、よく混同されるが、エラー(動かない)と、警告(warning: 動くけど危うい)は、別物である。)
【注意】この設定だけでは、hubot の動いているパソコンを再起動すると、hubot は自動的には再起動しない。
(hubot の再起動の設定は、今はやらずに、後回しでもOK。まずは一通りの動作確認が最優先)
7. Slackからhubotに話しかけてみる
再び Slack に戻って、Slack のチャット画面から、hubot に話しかけてみる。
まずは、Slackにpingと打って、hubotからPONGが返ってくることを確認しておく。
つぎに、Slackから照明を点灯してみる。
https://gyazo.com/08a374a7193250c3d5c8b62f1048aedc
send light:onと打ったら、sent code of light:onと返事が来て、部屋の照明が点灯した!
これで、外出先からでも、Slack 経由で家電を操作できるようになった。
補足:Slack のダイレクトメッセージの通知
上の例では、Slack のダイレクトメッセージ経由で、hubot に話しかけているので、hubot から返事が来るたびに、Slack アプリに通知が来てしまう。
日常的に Slack を使っている場合は、ダイレクトメッセージ経由だと通知がうるさくなってしまうので、プライベートグループ経由でhubotに話しかける方が静かでよいだろう。
なお、プライベートグループ経由でhubotに話しかける場合には、sendコマンド等の前に、homebot と名指しする必要があることを忘れずに。
次にやること
2017/12/16